package com.snpic.appaw.module.third.api.bjpt.dto.iSPolicyQuery;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @author JiJun
 * @date 2025/9/19 19:22
 * @修改时间 2025/9/19 19:22
 * @description
 */

@Data
@Schema(description = "车船税信息数据传输对象")
public class ISCarShipTaxDTO {

    @Schema(description = "保单号", maxLength = 30)
    private String policyNo;

    @Schema(description = "分保单号", maxLength = 30)
    private String subPolicyNo;

    @Schema(description = "缴税情况01－不代收税 02－代收税 03－已完税 04－减税 05－免税", maxLength = 2)
    private String taxRelifFlag;

    @Schema(description = "计算方式1-按保险期间起期 2-按签单日期 3-按投保日起 4-按车辆购置日期", maxLength = 2)
    private String calculateMode;

    @Schema(description = "税目明细代码[详见码表]", maxLength = 10)
    private String taxItemDetailCode;

    @Schema(description = "税目明细名称", maxLength = 400)
    private String taxItemDetailName;

    @Schema(description = "燃料种类[详见码表]", maxLength = 2)
    private String fuelType;

    @Schema(description = "纳税人代码", maxLength = 20)
    private String taxPayerCode;

    @Schema(description = "纳税人名称", maxLength = 400)
    private String taxPayerName;

    @Schema(description = "纳税人证件类型[详见码表]", maxLength = 4)
    private String certiType;

    @Schema(description = "纳税人证件号码", maxLength = 60)
    private String identifyNumber;

    @Schema(description = "纳税人联系电话", maxLength = 30)
    private String taxPayerPhoneNumber;

    @Schema(description = "纳税人识别码", maxLength = 50)
    private String taxpayerIdentifier;

    @Schema(description = "税务登记证号", maxLength = 30)
    private String taxRegistryNumber;

    @Schema(description = "行驶证车辆类型[详见码表]", maxLength = 4)
    private String vehicleCategory;

    @Schema(description = "开据税务机关代码[详见码表]", maxLength = 10)
    private String taxCompancyCode;

    @Schema(description = "开据税务机关名称", maxLength = 400)
    private String taxCompancyName;

    @Schema(description = "减免税原因", maxLength = 400)
    private String relifReason;

    @Schema(description = "减免税方案代码[详见码表]", maxLength = 2)
    private String deductionDueType;

    @Schema(description = "减免税比例", example = "0.100000000")
    private BigDecimal freeRate;

    @Schema(description = "减免税金额", example = "100.000000000")
    private BigDecimal taxRelief;

    @Schema(description = "税款所属始期")
    private Date taxStartDate;

    @Schema(description = "税款所属止期")
    private Date taxEndDate;

    @Schema(description = "完税凭证号", maxLength = 100)
    private String paidFreeCertificate;

    @Schema(description = "整备质量", example = "1500.0000")
    private BigDecimal completeKerbMass;

    @Schema(description = "前次缴费年度", maxLength = 4)
    private String payLastYear;

    @Schema(description = "前次缴费终止日期")
    private Date payLastEndDate;

    @Schema(description = "税种类型代码(默认: 08)", maxLength = 10)
    private String taxTermTypeCode;

    @Schema(description = "年单位税额", example = "360.000000000")
    private BigDecimal taxDue;

    @Schema(description = "当年应缴", example = "360.000000000")
    private BigDecimal taxDueActual;

    @Schema(description = "往年补缴", example = "0.000000000")
    private BigDecimal previousPay;

    @Schema(description = "滞纳金", example = "0.000000000")
    private BigDecimal lateFee;

    @Schema(description = "税额合计", example = "360.000000000")
    private BigDecimal sumPayTax;

    @Schema(description = "计税单位 （默认：吨）", maxLength = 100)
    private String taxunittext;

    @Schema(description = "标的序号", example = "1")
    private BigDecimal itemNo;

    @Schema(description = "完税凭证填发日期")
    private Date paidDocumentDate;

    @Schema(description = "开具完税凭证地区代码", maxLength = 20)
    private String paidAreaCode;
}